package torque.menu;

import java.sql.*;
import java.util.*;

import org.apache.torque.NoRowsException;
import org.apache.torque.Torque;
import org.apache.torque.TorqueException;
import org.apache.torque.util.Criteria;

import torque.generated.*;

public class Menu {

	// Point d'entrée de l'application
	public static void main(String Args[]) {
		new Menu();
	}

	public Menu() {
		int choix;
		GregorianCalendar datejour = new GregorianCalendar();

		do {
			System.out.println();
			System.out.println("      **************************************");
			System.out.print("             On est le " + IO.ecrireDate(datejour));
			System.out.println();
			System.out.println("      **************************************");
			System.out.println("      *             CINEMA IUT             *");
			System.out.println("      **************************************");
			System.out.println("      * 1- Administrateur			       *");
			System.out.println("      * 2- Joueur				           *");
			System.out.println("      *                                    *");
			System.out.println("      * 0- Quitter                         *");
			System.out.println("      **************************************");
			System.out.println();
			System.out.print("      Votre Choix : ");
			choix = IO.lireEntier();

			switch (choix) {
			case 1: {
				this.menuAdmin();
				break;
			}
//			case 2: {
//				this.menuJoueur();
//				break;
//			}
			default:
				break;
			}

			System.out.println();
		} while (choix != 0);
	}

	public void menuAdmin() {
		int choix;
		// Chargement du driver
		// ---------------------------------------------------------
		try {
			Class.forName("org.postgresql.Driver");
		}// try
		catch (Exception E) {
			System.err.println("Impossible de Charger le driver.");
			return;
		}// catch
		try {
			 // Connexion à votre base cinema
			String url = "jdbc:postgresql://postgres-info/base5a08";
			 Connection conn = DriverManager.getConnection(url, "user5a08", "p08");
			 // Préparation d'une requête
			 Statement stmt = conn.createStatement();
			 
			 ResultSet rset = null;

			do {
				System.out.println();
				System.out.println("      ******************************************");
				System.out.println("      *         Différentes insertions         *");
				System.out.println("      ******************************************");
				System.out.println("      * 1- Créer un echiquier                  *");
				System.out.println("      * 2- Créer un troll                      *");
				System.out.println("      * 3- Créer un objet                      *");
				System.out.println("      * 4- Démarrer une partie                 *");
				System.out.println("      * 0- Retour au menu principal            *");
				System.out.println("      ******************************************");
				System.out.println();
				System.out.print("      Votre Choix : ");
				choix = IO.lireEntier();

				switch (choix) {
				case 1: {
					
//					System.out.println("Veuillez saisir le numero id de l'echiquier : "); 
//					int numsalle = IO.lireEntier();
					System.out.println("Veuillez saisir la longueur de l'echiquier : "); 
					int longueurE = IO.lireEntier();
					System.out.println("Veuillez saisir la largeur de l'echiquier : "); 
					int largeurE = IO.lireEntier();
//					System.out.println("Veuillez saisir le type de l'echiquier : "); 
//					int capacite = IO.lireEntier();
//					int rset1 = stmt.executeUpdate("insert into Cine values ('" + nomcine + "','" + adresse + "');");
//					int rset2 = stmt.executeUpdate("insert into Salle values ('" + nomcine + "','" + numsalle + "','" + capacite + "');");

				break;
				}

				case 2: {
					
					System.out.println("Veuillez saisir la longueur de l'echiquier : "); 
					int longueurE = IO.lireEntier();
					System.out.println("Veuillez saisir la largeur de l'echiquier : "); 
					int largeurE = IO.lireEntier();


					break;
				}
				case 3: {
					
					// Requête sur la relation CINE
					 System.out.println("Veuillez saisir le nom du cinema : "); 
					 String nomcine = IO.lireChaine();
					 System.out.println("Veuillez saisir l'adresse du cinema : "); 
					 String adresse = IO.lireChaine();
					 System.out.println("Veuillez saisir le numero d'une salle : "); 
					 int numsalle = IO.lireEntier();
					 System.out.println("Veuillez saisir la capacite de cette salle : "); 
					 int capacite = IO.lireEntier();
					 int rset1 = stmt.executeUpdate("insert into Cine values ('" + nomcine + "','" + adresse + "');");
					 int rset2 = stmt.executeUpdate("insert into Salle values ('" + nomcine + "','" + numsalle + "','" + capacite + "');");

					break;
				}
				
				case 4: {
					
					// Requête sur la relation CINE
					 rset = stmt.executeQuery("select f.titre, j.prenom, j.nom from film f, jouedans j where f.titre = j.titre order by f.titre;");
					 while (rset.next()) {
				     String titre = rset.getString("f.titre") ;
				     String prenom = rset.getString("j.prenom") ;
				     String nom = rset.getString("j.nom") ;
					 System.out.println(titre + " // " + prenom + " // " + nom);
					 }

					break;
				}
				
				case 5: {
					
					// Requête sur la relation CINE
					System.out.println("Veuillez saisir un film : ");
					String f = IO.lireChaine();
					 rset = stmt.executeQuery("select prenom, nom from film f, jouedans j where f.titre = j.titre and f.titre ='" + f + "';");
					 while (rset.next()) {
				     String prenom = rset.getString("prenom") ;
				     String nom = rset.getString("nom") ;
					 System.out.println(prenom + nom);
					 }

					break;
				}
				
				case 6: {
					
					// Requête sur la relation CINE
					System.out.println("Veuillez saisir un cinema : ");
					String ci = IO.lireChaine();
					 rset = stmt.executeQuery("select jour, heure, titre from seance where nomcine ='" + ci + "';");
					 while (rset.next()) {
				     String jour = rset.getString("jour") ;
				     String heure = rset.getString("heure") ;
				     String titre = rset.getString("titre") ;
					 System.out.println(titre + " // " + jour + " // " + heure);
					 }

					break;
				}
				
				case 7: {
					
					// Requête sur la relation CINE
					System.out.println("Veuillez saisir un film : ");
					String f = IO.lireChaine();
					 rset = stmt.executeQuery("select * from seance s, film f where s.titre = f.titre and f.titre ='" + f + "';");
					 while (rset.next()) {
				     String jour = rset.getString("jour") ;
				     String heure = rset.getString("heure") ;
				     String titre = rset.getString("titre") ;
				     String numsalle = rset.getString("numsalle") ;
				     String nomcine = rset.getString("nomcine") ;
					 System.out.println(nomcine + " // Salle " + numsalle + " // " + titre + " // " + jour + " // " + heure);
					 }

					break;
				}
				
				case 8: {
					
					// Requête sur la relation CINE
					System.out.println("Veuillez saisir un film : ");
					String f = IO.lireChaine();
					 rset = stmt.executeQuery("select distinct nomcine  from seance s, film f where s.titre = f.titre and f.titre ='" + f + "';");
					 while (rset.next()) {
				     String nomcine = rset.getString("nomcine") ;
					 System.out.println(nomcine);
					 }

					break;
				}
				
//				case 9: {
//					
//					// Requête sur la relation CINE
//					System.out.println("Veuillez saisir un film : ");
//					String f = IO.lireChaine();
//					 rset = stmt.executeQuery("select distinct nomcine  from seance s, film f where s.titre = f.titre and f.titre ='" + f + "';");
//					 while (rset.next()) {
//				     String nomcine = rset.getString("nomcine") ;
//					 System.out.println(nomcine);
//					 }
//
//					break;
//				}
				
				default:
					System.out.println();
					rset.close();
					stmt.close();
					conn.close();
					break;
				} // switch
				
			} while (choix != 0);

		} catch (SQLException E) {
			System.err.println("SQLException: " + E.getMessage());
			 System.err.println("SQLState:     " + E.getSQLState());
		}// catch
	}
}
//
//	public void menuJoueur() {
//		int choix;
//		// Chargement du driver
//		// ---------------------------------------------------------
//		try {
//			Class.forName("org.postgresql.Driver");
//		}// try
//		catch (Exception E) {
//			System.err.println("Impossible de Charger le driver.");
//			return;
//		}// catch
//		try {
//			 // Connexion à votre base cinema
//			String url = "jdbc:postgresql://postgres-info/base5a08";
//			 Connection conn = DriverManager.getConnection(url, "user5a08", "p08");
//			 // Préparation d'une requête
//			 Statement stmt = conn.createStatement();
//			 
//			 ResultSet rset = null;
//
//			do {
//				System.out.println();
//				System.out.println("      ******************************************");
//				System.out.println("      *         Différentes insertions         *");
//				System.out.println("      ******************************************");
//				System.out.println("      * 1- Créer un echiquier                  *");
//				System.out.println("      * 2- Créer un troll                      *");
//				System.out.println("      * 3- Créer un objet                      *");
//				System.out.println("      * 4- Démarrer une partie                 *");
//				System.out.println("      * 0- Retour au menu principal            *");
//				System.out.println("      ******************************************");
//				System.out.println();
//				System.out.print("      Votre Choix : ");
//				choix = IO.lireEntier();
